package com.ruoyi.baseInfo.service;

import com.ruoyi.baseInfo.domain.ClientsInfo;
import com.ruoyi.common.core.domain.entity.SysDept;

import java.util.List;

public interface ClientsInfoService {
    /**
     * 查询客户基本信息列表
     * @param clientsInfo 查询参数
     * @return 结果
     */
    List<ClientsInfo> selectClientList(ClientsInfo clientsInfo);

    /**
     * 根据ID查询所有子公司（正常状态）
     *
     * @param companyId 公司ID
     * @return 子部门数
     */
    public int selectNormalChildrenById(Long companyId);

    /**
     * 校验公司名称是否唯一
     *
     * @param clientsInfo 部门信息
     * @return 结果
     */
    public String checkCompanyNameUnique(ClientsInfo clientsInfo);

    /**
     * 校验公司是否有数据权限
     *
     * @param companyId 公司id
     */
    public void checkClientDataScope(Long companyId);

    /**
     * 根据公司ID查询信息
     *
     * @param companyId 公司ID
     * @return 部门信息
     */
    public ClientsInfo selectCompanyById(Long companyId);

    /**
     * 是否存在公司子节点
     *
     * @param companyId 公司ID
     * @return 结果
     */
    public boolean hasChildById(Long companyId);

    /**
     * 新增保存部门信息
     *
     * @param clientsInfo 公司信息
     * @return 结果
     */
    public int insertClient(ClientsInfo clientsInfo);

    /**
     * 删除公司管理信息
     *
     * @param companyId 公司ID
     * @return 结果
     */
    public int deleteClientById(Long companyId);

    /**
     * 修改公司管理信息
     *
     * @param clientsInfo 公司信息
     * @return 结果
     */
    public int updateClient (ClientsInfo clientsInfo);

}
